package com.aggregate.pay.pingan.bean;

import com.aggregate.pay.pingan.enums.OrderStatus;
import com.aggregate.pay.pingan.enums.OrderType;
import com.aggregate.pay.pingan.jackson.converter.OrderStatusSerialize;
import com.aggregate.pay.pingan.jackson.converter.OrderTypeSerialize;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

/**
 * 订单列表接口data参数对象，需要转换成JSON并加密赋给<code>CommonData</code>对象的<code>data</code>属性
 * @author Moyq5
 * @date 2017年7月29日
 */
public class OrderListData {

	/**
	 * 分页编号，默认1，9
	 */
	private Integer page;
	
	/**
	 * 每页返回的数据条数，默认10，最多100
	 */
	@JsonProperty("pagesize")
	private Integer pageSize;
	
	/**
	 * 商户名称，30
	 */
	@JsonProperty("mct_name")
	private String merchName;
	
	/**
	 * 门店名称，30
	 */
	@JsonProperty("shop_name")
	private String shopName;
	
	/**
	 * 订单状态，1
	 */
	@JsonSerialize(converter = OrderStatusSerialize.class)
	private OrderStatus status;
	
	/**
	 * 交易类型，1
	 */
	@JsonSerialize(converter = OrderTypeSerialize.class)
	@JsonProperty("ord_type")
	private OrderType orderType;
	
	/**
	 * 机构名称，6
	 */
	@JsonProperty("agent_name")
	private String agentName;
	
	/**
	 * 订单号，32
	 */
	@JsonProperty("ord_no")
	private String orderNo;
	
	/**
	 * 支付方式编号，9
	 */
	@JsonProperty("pmt_id")
	private String paymentId;
	
	/**
	 * 商户编号，50
	 */
	@JsonProperty("mct_no")
	private String merchNo;
	
	/**
	 * 门店编号，20
	 */
	@JsonProperty("shop_no")
	private String shopNo;
	
	/**
	 * 下单时间开始（yyyy-mm-dd），10
	 */
	@JsonProperty("sdate")
	private String startDate;
	
	/**
	 * 下单时间结束（yyyy-mm-dd），10
	 */
	@JsonProperty("edate")
	private String endDate;
	
	/**
	 * 收银员编号，20
	 */
	@JsonProperty("scr_id")
	private String cashierId;
	
	/**
	 * 合同主键编号，20
	 */
	@JsonProperty("ctt_id")
	private String contractNo;
	
	/**
	 * 第三方交易号，128
	 */
	@JsonProperty("trade_no")
	private String tradeNo;

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}

	public Integer getPageSize() {
		return pageSize;
	}

	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}

	public String getMerchName() {
		return merchName;
	}

	public void setMerchName(String merchName) {
		this.merchName = merchName;
	}

	public String getShopName() {
		return shopName;
	}

	public void setShopName(String shopName) {
		this.shopName = shopName;
	}

	public OrderStatus getStatus() {
		return status;
	}

	public void setStatus(OrderStatus status) {
		this.status = status;
	}

	public OrderType getOrderType() {
		return orderType;
	}

	public void setOrderType(OrderType orderType) {
		this.orderType = orderType;
	}

	public String getAgentName() {
		return agentName;
	}

	public void setAgentName(String agentName) {
		this.agentName = agentName;
	}

	public String getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(String orderNo) {
		this.orderNo = orderNo;
	}

	public String getPaymentId() {
		return paymentId;
	}

	public void setPaymentId(String paymentId) {
		this.paymentId = paymentId;
	}

	public String getMerchNo() {
		return merchNo;
	}

	public void setMerchNo(String merchNo) {
		this.merchNo = merchNo;
	}

	public String getShopNo() {
		return shopNo;
	}

	public void setShopNo(String shopNo) {
		this.shopNo = shopNo;
	}

	public String getStartDate() {
		return startDate;
	}

	public void setStartDate(String startDate) {
		this.startDate = startDate;
	}

	public String getEndDate() {
		return endDate;
	}

	public void setEndDate(String endDate) {
		this.endDate = endDate;
	}

	public String getCashierId() {
		return cashierId;
	}

	public void setCashierId(String cashierId) {
		this.cashierId = cashierId;
	}

	public String getContractNo() {
		return contractNo;
	}

	public void setContractNo(String contractNo) {
		this.contractNo = contractNo;
	}

	public String getTradeNo() {
		return tradeNo;
	}

	public void setTradeNo(String tradeNo) {
		this.tradeNo = tradeNo;
	}

	@Override
	public String toString() {
		return "OrderListData [page=" + page + ", pageSize=" + pageSize + ", merchName=" + merchName + ", shopName="
				+ shopName + ", status=" + status + ", orderType=" + orderType + ", agentName=" + agentName
				+ ", orderNo=" + orderNo + ", paymentId=" + paymentId + ", merchNo=" + merchNo + ", shopNo=" + shopNo
				+ ", startDate=" + startDate + ", endDate=" + endDate + ", cashierId=" + cashierId + ", contractNo="
				+ contractNo + ", tradeNo=" + tradeNo + "]";
	}
	
}
